import  DailyRotateFile from 'winston-daily-rotate-file'
import{format} from 'winston'
import { Console } from 'winston/lib/winston/transports'
import { utilities } from 'nest-winston'
// Console 表示控制台输出
export const consoleTransports = new Console({
    // level 表示日志级别，可以是 'error', 'warn', 'info', 'http', 'verbose', 'debug', 'silly'
    level:'info',
    // format表示日志格式，winston.format.combine表示组合多个格式
    format: format.combine(
        // timestamp表示时间戳
        format.timestamp(),
        utilities.format.nestLike('winston'),
    )
})


// 导出一个默认函数，函数名为 createDailyRotateTransport，接受一个字符串类型的参数 path
export  function createDailyRotateTransport (level: string,filename: string)  {
    return  new DailyRotateFile({
        // level表示日志级别，可以是 'error', 'warn', 'info', 'http', 'verbose', 'debug', 'silly'
        level,
        // dirname表示日志文件存放的目录
        dirname: 'logs',
        //  filename表示日志文件名，%DATE%表示日期，YYYY-MM-DD表示日期格式
        filename: `${filename}-%DATE%.log`,
        // datePattern表示日期格式，YYYY-MM-DD表示日期格式
        datePattern: 'YYYY-MM-DD',
        // zippedArchive表示是否压缩日志文件，true表示压缩，false表示不压缩
        zippedArchive: true,
        // maxSize表示日志文件的最大大小，20m表示20兆
        maxSize: '20m',
        // maxFiles表示日志文件的最大数量，14d表示14天
        maxFiles: '14d',
        // format表示日志格式，winston.format.combine表示组合多个格式
        format:format.combine(
            // timestamp表示时间戳
            format.timestamp(),
            // simple表示简单格式
            format.simple()
        )
    })
}